我先來自我介紹一下! 我是Nina 目前要升大二,為了減緩我暑假的焦慮決定來報名這次的IT鐵人賽順便磨練自己,第一次參加鐵人賽請多指教
選此次的主題是想說趁著升大二的暑假來自學一點下學期的內容
本次會搭配實作
因為本人還只是程式小白,並不是什麼很厲害的大神
所以如果有錯誤的地方還請各位大大幫忙修正@@
那就來開始吧!
簡單來說資料結構就是幫助你電腦裡的資料安排的儲存和組織方式
假設你有一堆書(資料),你的擺放方式=結構
陣列(Array):把書排成一排,幫每本書訂一個編號,找特定的書很方便,但是如果中間要插入一本書,後面的書就要往後挪
堆疊(stack):直接把書疊成一疊,要拿的話只能拿最上面的書,為後進先出(Last in, First out, LIFO)
那資料結構一定會有資料對吧,資料在電腦裡會有儲存的型態
那以下為常見的資料型態(以C++為例)
不能以其餘的資料型態來定義,以下為常見例子
int //整數型態
float//浮點數
double//倍精度浮點數 比float精度更高
char//字元
bool//布林值
比基本資料型態更高一層的資料型態
如字串(string),陣列(array),指標(pointer),堆疊(stack),檔案(file)...等。
抽象資料型態(Abstract Data Type, ADT)描述的是資料應該具備哪些操作與行為,而不關心底層如何實作。例如 Queue 定義了 FIFO 的行為,而陣列或鏈結串列都可以作為實作 Queue 的方式。
常見的資料結構有
為了幫助你的程式不只是能跑而已,還跑得又快又好,當你程式規模越來越大時,或許就會對那些能跑但跑很慢的程式感到困惑
資料結構總結來說就是能幫助你把
都有所加強的東西:)
By the way其實我覺得還要搭配演算法啦,之後會提到
參考資料與書籍